<template>
  <header class="header">
    <h1>todos</h1>
    <input id="toggle-all" class="toggle-all" type="checkbox" v-model="isAll" />
    <label for="toggle-all"></label>
    <input
      class="new-todo"
      placeholder="输入任务名称-回车确认"
      autofocus
      v-model="NewTodo"
      @keydown.enter="add"
    />
  </header>
</template>

<script>
export default {
  data() {
    return {
      NewTodo: '',
    }
  },
  props: {
    list: {
      type: Array, // 数组类型
      required: true, // 必传参
    },
  },
  // 计算属性
  computed: {
    // 通过 接收的 list 来计算 isAll 来改变 全选按钮的状态
    isAll: {
      get() {
        return this.list.every((item) => item.isDone)
      },
      set(val) {
        this.$emit('isAll', val)
      },
    },
  },
  methods: {
    add() {
      // 添加数据
      // 先将输入的内容 存入 NewTodo
      // 再将 NewTodo 中的数据传给父组件中的自定义事件addTodo
      this.$emit('addTodo', this.NewTodo)
      // 清空 NewTodo 中的数据
      this.NewTodo = ''
    },
  },
}
</script>
